home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume15 / touchup / part01 next >
Encoding:
Text File  |  1988-06-14  |  44.3 KB  |  1,174 lines

  1. Newsgroups: comp.sources.unix
  2. Subject: COMPLETE REPOST v15i058:  A bitmap editor for Suns, Part01/06
  3. Approved: rsalz@uunet.UU.NET
  4.  
  5. Submitted-by: Raymond T Kreisel <rayk@sbcs.sunysb.edu>
  6. Posting-number: Volume 15, Issue 58
  7. Archive-name: touchup/part01
  8.  
  9. THIS IS A COMPLETE REPOSTING OF THE ENTIRE PACKAGE.
  10. NOTE THAT THE ".PAT" FILES WILL HAVE TO BE RENAMED.
  11.  
  12. [  I didn't repack this, nor try it out.  -r$ ]
  13.  
  14. The following, Touchup, is a bitmap editor (paint program) for Sun
  15. workstations.  It has some of the same features as programs like
  16. MacPaint.  I wrote this program because I could not find any other
  17. programs for the Sun that would allow you to edit bitmaps (screendumps,
  18. video images other bitmaps).
  19.  
  20.                 ray
  21.  
  22. #! /bin/sh
  23. # This is a shell archive.  Remove anything before this line, then unpack
  24. # it by saving it into a file and typing "sh file".  To overwrite existing
  25. # files, type "sh file -c".  You can also feed this as standard input via
  26. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  27. # will see the following message at the end:
  28. #        "End of archive 1 (of 6)."
  29. # Contents:  header.h Makefile INSTALL README touchup.man fixman.sed
  30. #   temp_image touchup.icon
  31. #   fat_cursor
  32. #   strip_icon32x32
  33. #   strip_icon48x48
  34. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  35. if test -f header.h -a "${1}" != "-c" ; then 
  36.   echo shar: Will not over-write existing file \"header.h\"
  37. else
  38. echo shar: Extracting \"header.h\" \(6800 characters\)
  39. sed "s/^X//" >header.h <<'END_OF_header.h'
  40. X
  41. X/**************************************************************************
  42. X   Touchup a bitmap graphics editor for the Sun Workstation running SunView
  43. X   Copyright (c) 1988 by Raymond Kreisel
  44. X   1/22/88 @ Suny Stony Brook
  45. X
  46. X   This program may be redistributed without fee as long as this copyright
  47. X   notice is intact.
  48. X
  49. X==> PLEASE send comments and bug reports to one of the following addresses:
  50. X
  51. X       Ray Kreisel
  52. X       CS Dept., SUNY at Stony Brook, Stony Brook NY 11794
  53. X
  54. X       UUCP: {allegra, philabs, pyramid, research}!sbcs!rayk   
  55. X       ARPA-Internet: rayk@sbcs.sunysb.edu            
  56. X       CSnet: rayk@suny-sb
  57. X       (If nobody is home at any of the above addresses try:
  58. X        S72QKRE@TOWSONVX.BITNET                    )
  59. X
  60. X "If I get home before daylight, I just might get some sleep tonight...."
  61. X
  62. X**************************************************************************/
  63. X/**************************************************************************
  64. X    file: header.h
  65. X    purpose: this file has all of the gobals that need to be defined
  66. X        and the proper include files
  67. X    modifications:
  68. X        date:    Tue Mar 22 22:04:58 EST 1988
  69. X        author:    rayk
  70. X        changes:add comments
  71. X**************************************************************************/
  72. X#include <stdio.h>
  73. X#include <sys/file.h>
  74. X#include <suntool/sunview.h>
  75. X#include <suntool/panel.h>
  76. X#include <suntool/canvas.h>
  77. X#include <suntool/walkmenu.h>
  78. X#include <suntool/scrollbar.h>
  79. X#include <math.h>
  80. X#include <pixrect/pixrect_hs.h>
  81. X
  82. X
  83. X#define DEFAULT_IMAGE_WID  1152
  84. X#define DEFAULT_IMAGE_HGT  900
  85. X
  86. X
  87. X#define TEXT 0
  88. X#define MAGNIFY 1
  89. X#define SEL_REG 2
  90. X#define GET_PT 3
  91. X#define LASO 4
  92. X#define FFILL 5
  93. X#define PAINT 6
  94. X#define DRAW 7
  95. X#define LINE 8
  96. X#define ERASE 9
  97. X#define RECT_H 10
  98. X#define RECT_F 11
  99. X#define CIRCLE 12
  100. X#define OVAL 13
  101. X#define POLY_H 14
  102. X#define POLY_F 15
  103. X
  104. X#define FLIP_HOR 0
  105. X#define FLIP_VER 1
  106. X#define INVERSE 2
  107. X#define ROTATE 3
  108. X#define COPY 4
  109. X#define PASTE 5
  110. X#define MOVE 6
  111. X#define CUT 7
  112. X
  113. X#define PIX_XOR PIX_SRC^PIX_DST
  114. X#define MAX_PTS 3000
  115. X
  116. X#define MIN(x,y) ((x) < (y) ? (x) : (y))
  117. X#define MAX(x,y) ((x) > (y) ? (x) : (y))
  118. X
  119. X#define MAX_POLY 100
  120. X
  121. X#define BRUSH_NO 6
  122. X
  123. X#define PATTERN_SIZE 32
  124. X#define PATTERN_NO 40
  125. X
  126. X#define COMMAND_SIZE 48
  127. X#define COMMAND_NO 16
  128. X
  129. X#define MAIN_FONT "/usr/lib/fonts/fixedwidthfonts/screen.r.14"
  130. X
  131. X#define MY_pr_destroy(prect) if (prect) pr_destroy(prect);prect=NULL;
  132. X
  133. X#define MAINWIN 1
  134. X#define FATWIN 2
  135. X#define COLORWIN 3
  136. X
  137. X#define MAX_FILE_NAME 120
  138. X#define DELETE_KEY 127
  139. X
  140. X#define SAVE_ALL 0
  141. X#define SAVE_CUT_PASTE 1
  142. X
  143. X#define LOAD_ALL 0
  144. X#define LOAD_CUT_PASTE 1
  145. X
  146. X#define SUNWHITE   0
  147. X#define SUNBLACK   1
  148. X
  149. X#define NILPR ((struct pixrect *)0)
  150. X
  151. X#define PALET_BLOCK 15
  152. X
  153. X/* constants */
  154. X#define SCREEN_MAX_X  400
  155. X#define SCREEN_MAX_Y  400
  156. X
  157. Xextern unsigned char red[256],green[256],blue[256];
  158. Xextern unsigned char temp_red[256],temp_green[256],temp_blue[256];
  159. Xextern int image_wid,image_hgt,image_depth;
  160. Xextern int top_x,top_y,bottom_x,bottom_y;
  161. Xextern int cur_color,grid_size;
  162. Xextern int magnify_fac,fat_x,fat_y,fat_source_x,fat_source_y;
  163. Xextern int mouse_left,mouse_middle;
  164. Xextern int select_pt_x,select_pt_y;
  165. Xextern int old_x; old_y;
  166. Xextern int start_x; start_y;
  167. Xextern char file_name[MAX_FILE_NAME];
  168. Xextern struct pixrect *cut_buffer_pr,*undo_pr;
  169. Xextern struct pixfont *main_font;
  170. Xextern struct pixrect *pattern[];
  171. Xextern struct pixrect *brushes[];
  172. Xextern struct  pixfont  *font_array[];
  173. Xextern struct pr_pos poly_points[];
  174. Xextern struct pr_pos  ptlist[];
  175. X
  176. Xextern struct  pixfont  *screen_r_7;
  177. Xextern struct  pixfont  *screen_r_11;
  178. Xextern struct  pixfont  *screen_r_12;
  179. Xextern struct  pixfont  *screen_r_14;
  180. Xextern struct  pixfont  *screen_b_12;
  181. Xextern struct  pixfont  *screen_b_14;
  182. X
  183. Xextern struct  pixfont  *pcfont_b_14;
  184. Xextern struct  pixfont  *pcfont_r_14;
  185. X
  186. Xextern struct  pixfont  *cour_b_10;
  187. Xextern struct  pixfont  *cour_b_12;
  188. Xextern struct  pixfont  *cour_b_16;
  189. Xextern struct  pixfont  *cour_b_24;
  190. X
  191. Xextern struct  pixfont  *cour_r_10;
  192. Xextern struct  pixfont  *cour_r_12;
  193. Xextern struct  pixfont  *cour_r_16;
  194. Xextern struct  pixfont  *cour_r_24;
  195. X
  196. Xextern struct  pixfont  *serif_r_10;
  197. Xextern struct  pixfont  *serif_r_11;
  198. Xextern struct  pixfont  *serif_r_16;
  199. X
  200. X
  201. Xextern Frame base_frame,fat_frame,color_frame;
  202. Xextern Canvas canvas,fat_canvas,color_canvas;
  203. Xextern Pixwin *pw,*fat_pw,*color_pw;
  204. Xextern Scrollbar    vertical_sb, horizontal_sb;
  205. Xextern Panel       panel,fat_panel,color_panel,pattern_panel,
  206. X        brush_panel,region_panel,command_panel;
  207. Xextern Panel_item magnify_cycle, command_choice,text_size_item;
  208. Xextern Panel_item  text_panel,file_panel,brush_choice,mono_cycle,save_cycle,
  209. X    msg_string,color_button,border_cycle,view_cycle,current_pattern,
  210. X        load_cycle,pattern_choice,region_choice,grid_cycle,
  211. X        compress_cycle,undo_button;
  212. X
  213. Xextern struct pixrect            brush1_pr,brush2_pr,brush3_pr,
  214. X                    brush4_pr,brush5_pr,brush6_pr;
  215. X
  216. X
  217. Xextern struct pixrect            pattern1_pr,pattern2_pr,pattern3_pr,
  218. X                    pattern4_pr,pattern5_pr,
  219. X                    pattern6_pr,pattern7_pr,
  220. X                    pattern8_pr,pattern9_pr,
  221. X                    pattern10_pr,
  222. X                         pattern11_pr,pattern12_pr,pattern13_pr,
  223. X                    pattern14_pr,pattern15_pr,
  224. X                    pattern16_pr,pattern17_pr,
  225. X                    pattern18_pr,pattern19_pr,
  226. X                    pattern20_pr,
  227. X                         pattern21_pr,pattern22_pr,pattern23_pr,
  228. X                    pattern24_pr,pattern25_pr,
  229. X                    pattern26_pr,pattern27_pr,
  230. X                    pattern28_pr,pattern29_pr,
  231. X                    pattern30_pr,
  232. X                         pattern31_pr,pattern32_pr,pattern33_pr,
  233. X                    pattern34_pr,pattern35_pr,
  234. X                    pattern36_pr,pattern37_pr,
  235. X                    pattern38_pr,pattern39_pr,
  236. X                    pattern40_pr;
  237. X
  238. Xextern struct pixrect            command1_pr,command2_pr,command3_pr,
  239. X                    command4_pr,command5_pr,
  240. X                    command6_pr,command7_pr,
  241. X                    command8_pr,command9_pr,
  242. X                    command10_pr,
  243. X                         command11_pr,
  244. X                    command12_pr,command13_pr,
  245. X                    command14_pr,command15_pr,
  246. X                    command16_pr;
  247. X
  248. Xextern struct pixrect            reg_command1_pr,reg_command2_pr,
  249. X                    reg_command3_pr,reg_command4_pr,
  250. X                    reg_command5_pr,reg_command6_pr,
  251. X                    reg_command7_pr,reg_command8_pr;
  252. X
  253. Xextern char *malloc();
  254. Xextern quit();
  255. Xextern color_handle_event();
  256. Xextern draw_colormap();
  257. Xextern color_done();
  258. Xextern fat_mode();
  259. Xextern fat_handle_event();
  260. Xextern fat_parms();
  261. Xextern fat_update();
  262. Xextern fat_done();
  263. Xextern handle_event();
  264. Xextern load_file();
  265. Xextern save_file();
  266. Xextern cut_region();
  267. Xextern copy_region();
  268. Xextern paste_region();
  269. Xextern mouse_parms();
  270. Xextern change_parms();
  271. Xextern color_mode();
  272. Xextern undo_screen();
  273. Xextern poly_addpt();
  274. Xextern clear_screen();
  275. Xextern clean_poly();
  276. Xextern confirmer();
  277. Xextern draw_circle();
  278. Xextern draw_oval();
  279. Xextern init_colortable();
  280. Xextern command_handle();
  281. Xextern region_handle();
  282. Xextern struct pixrect *my_mem_create();
  283. Xextern rotate_region();
  284. Xextern draw_text();
  285. Xextern fill_mode();
  286. Xextern move_region();
  287. Xextern info_init();
  288. Xextern pattern_define();
  289. Xextern viewer();
  290. Xextern select_pattern();
  291. Xextern char *expand_file_name();
  292. Xextern make_new_name();
  293. END_OF_header.h
  294. if test 6800 -ne `wc -c <header.h`; then
  295.     echo shar: \"header.h\" unpacked with wrong size!
  296. fi
  297. # end of overwriting check
  298. fi
  299. if test -f Makefile -a "${1}" != "-c" ; then 
  300.   echo shar: Will not over-write existing file \"Makefile\"
  301. else
  302. echo shar: Extracting \"Makefile\" \(2844 characters\)
  303. sed "s/^X//" >Makefile <<'END_OF_Makefile'
  304. XCFLAGS = -O
  305. XOPTIONS =
  306. XLIBS = -lsuntool -lsunwindow -lpixrect -lm
  307. XEXE = touchup
  308. XOBJ =   ffill.o cms_rainbow.o oval.o circle.o confirmer.o fat.o touchup.o \
  309. X    info.o fonts.o brush.o command.o color_palet.o \
  310. X    disk_io.o pattern.o drawing.o interface.o magnify.o
  311. X
  312. X
  313. XSRC =   ffill.c cms_rainbow.c oval.c circle.c confirmer.c fat.c touchup.c \
  314. X    info.c fonts.c brush.c command.c color_palet.c \
  315. X    disk_io.c pattern.c drawing.c interface.c magnify.c
  316. X
  317. XSH_BASE_DIR = /u13/sr/rayk/touchup
  318. XSH_PATTERNS_DIR = $(SH_BASE_DIR)/pattern_icons
  319. XSH_COMMANDS_DIR = $(SH_BASE_DIR)/command_icons
  320. X
  321. X
  322. X
  323. X################################################################
  324. X#   change these dirs if you move the files
  325. X################################################################
  326. XBASE_DIR = $(PWD)
  327. XPATTERNS_DIR = $(BASE_DIR)
  328. XCOMMANDS_DIR = $(BASE_DIR)
  329. XINFO_PICTURE = $(BASE_DIR)/info.image
  330. XMAN_PAGE= $(BASE_DIR)/touchup.cat
  331. X###############################################################
  332. X###############################################################
  333. X
  334. X
  335. X$(EXE): $(OBJ) touchup.cat
  336. X    cc $(CFLAGS) -o $(EXE) $(OBJ) $(OPTIONS) $(LIBS)
  337. X
  338. X
  339. X
  340. Xlint_it: $(SRC)
  341. X    lint $(SRC) $(OPTIONS) $(LIBS)
  342. X
  343. X
  344. Xinterface.o :
  345. X    cc $(CFLAGS)  -mc68020 -c  interface.c -I$(PATTERNS_DIR)
  346. X
  347. Xpattern.o:
  348. X    cc $(CFLAGS)  -mc68020 -c  pattern.c -I$(PATTERNS_DIR)
  349. X
  350. Xbrush.o:
  351. X    cc $(CFLAGS)  -mc68020 -c  brush.c -I$(PATTERNS_DIR)
  352. X
  353. Xcommand.o:
  354. X    cc $(CFLAGS)  -mc68020 -c  command.c -I$(COMMANDS_DIR)
  355. X
  356. Xfat.o:
  357. X    cc $(CFLAGS)  -mc68020 -c fat.c $(OPTIONS) -DNO_FASTAN
  358. X
  359. Xinfo.o:
  360. X    cc $(CFLAGS)  -mc68020 -c info.c $(OPTIONS) -DINFO_IMAGE='"$(INFO_PICTURE)"' -DHELP_FILE='"$(MAN_PAGE)"'
  361. X
  362. Xtouchup.o:
  363. X    cc $(CFLAGS)  -mc68020 -c touchup.c $(OPTIONS)
  364. X
  365. X
  366. Xtouchup.cat: touchup.man
  367. X    nroff -man $(BASE_DIR)/touchup.man | sed -f fixman.sed > $(BASE_DIR)/touchup.cat
  368. X    
  369. X
  370. Xshar:
  371. X    uuencode info.image info.image > temp_image
  372. X    shar -b -n1 -e6 *.h Makefile INSTALL README touchup.man \
  373. X        fixman.sed temp_image touchup.icon \
  374. X            $(SH_PATTERNS_DIR)/fat_cursor \
  375. X            $(SH_PATTERNS_DIR)/strip_icon32x32 \
  376. X            $(SH_COMMANDS_DIR)/strip_icon48x48 > touchup.shar1
  377. X    shar -b -n2 -e6 $(SH_COMMANDS_DIR)/*.cicon > touchup.shar2
  378. X    shar -b -n3 -e6 $(SH_PATTERNS_DIR)/pattern[1-2]*.icon > touchup.shar3
  379. X    shar -b -n4 -e6 $(SH_PATTERNS_DIR)/pattern[3-9]*.icon \
  380. X            $(SH_PATTERNS_DIR)/brush[1-9].icon > touchup.shar4
  381. X    shar -b -n5 -e6 [a-h]*.c > touchup.shar5
  382. X    shar -b -n6 -e6 [h-z]*.c > touchup.shar6
  383. X    rm -f temp_image
  384. X
  385. Xinstall:
  386. X    @echo -n "The pattern directory is :"
  387. X    @echo $(PATTERNS_DIR)
  388. X    @echo -n "The command directory is :"
  389. X    @echo $(COMMANDS_DIR)
  390. X    @echo
  391. X    @echo "if these are incorrect change the defintions in the Makefile"
  392. X    @echo
  393. X    touch info.image
  394. X    chmod 777 info.image
  395. X    uudecode temp_image
  396. X    $(COMMANDS_DIR)/strip_icon48x48
  397. X    $(PATTERNS_DIR)/strip_icon32x32
  398. X    @echo
  399. X    @echo
  400. X    @echo "Now just type:  make"
  401. X    @echo
  402. X
  403. X
  404. X
  405. Xmy_backup:
  406. X    cp *.sh *.man *.c *.h Makefile backup
  407. END_OF_Makefile
  408. if test 2844 -ne `wc -c <Makefile`; then
  409.     echo shar: \"Makefile\" unpacked with wrong size!
  410. fi
  411. chmod +x Makefile
  412. # end of overwriting check
  413. fi
  414. if test -f INSTALL -a "${1}" != "-c" ; then 
  415.   echo shar: Will not over-write existing file \"INSTALL\"
  416. else
  417. echo shar: Extracting \"INSTALL\" \(883 characters\)
  418. sed "s/^X//" >INSTALL <<'END_OF_INSTALL'
  419. X
  420. X
  421. X    How to install Touchup
  422. X
  423. X
  424. X    Unpack all of the archive files into the same directory.
  425. X    When you unpack the first archive you will get a message like:
  426. X
  427. X    Found 1 control char in "fixman.sed"
  428. X
  429. X    Do not worry about this, just continue with the instalation.
  430. X    After you have unpacked all of the archives then type the
  431. X    following command:
  432. X
  433. X    % make install
  434. X
  435. X    you will get messages here
  436. X
  437. X    then just type the following:
  438. X
  439. X    % make
  440. X
  441. X
  442. X    when this is done the excutable file will be called touchup
  443. X    To run it just type:
  444. X
  445. X    % touchup
  446. X
  447. X
  448. X    and then you be in the Touchup bitmap editor.
  449. X
  450. X    There is a standard man page in the file touchup.man
  451. X     or you can just press the "view" button on the upper
  452. X    left hand side of the control panel to display the man page.
  453. X
  454. X    If you are using Touchup on a color Sun you may want to
  455. X    use the -n option (you can read about this in the man page)
  456. X    so the it will run faster.
  457. END_OF_INSTALL
  458. if test 883 -ne `wc -c <INSTALL`; then
  459.     echo shar: \"INSTALL\" unpacked with wrong size!
  460. fi
  461. # end of overwriting check
  462. fi
  463. if test -f README -a "${1}" != "-c" ; then 
  464.   echo shar: Will not over-write existing file \"README\"
  465. else
  466. echo shar: Extracting \"README\" \(1278 characters\)
  467. sed "s/^X//" >README <<'END_OF_README'
  468. X/**************************************************************************
  469. X   Touchup a bitmap graphics editor for the Sun Workstation running SunView
  470. X   Copyright (c) 1988 by Raymond Kreisel
  471. X   1/22/88 @ Suny Stony Brook
  472. X
  473. X   This program may be redistributed without fee as long as this copyright
  474. X   notice is intact.
  475. X
  476. X==> PLEASE send comments and bug reports to one of the following addresses:
  477. X
  478. X       Ray Kreisel
  479. X       CS Dept., SUNY at Stony Brook, Stony Brook NY 11794
  480. X
  481. X       UUCP: {allegra, philabs, pyramid, research}!sbcs!rayk   
  482. X       ARPA-Internet: rayk@sbcs.sunysb.edu            
  483. X       CSnet: rayk@suny-sb
  484. X       (If nobody is home at any of the above addresses try:
  485. X        S72QKRE@TOWSONVX.BITNET                    )
  486. X
  487. X "If I get home before daylight, I just might get some sleep tonight...."
  488. X
  489. X**************************************************************************/
  490. X
  491. X    Be sure to read the instructions in INSTALL first.
  492. X
  493. X    There in is a manual in file touchup.man
  494. X
  495. X
  496. X    After you have installed touchup these are the files
  497. X    you must have in order to run the execuatble code:
  498. X
  499. X        touchup*
  500. X        info.image
  501. X        touchup.cat
  502. X
  503. X
  504. X    The rest of the files can be removed.
  505. X
  506. X    If you are using Touchup on a color Sun you may want to
  507. X    use the -n option (you can read about this in the man page)
  508. X    so the it will run faster.
  509. END_OF_README
  510. if test 1278 -ne `wc -c <README`; then
  511.     echo shar: \"README\" unpacked with wrong size!
  512. fi
  513. # end of overwriting check
  514. fi
  515. if test -f touchup.man -a "${1}" != "-c" ; then 
  516.   echo shar: Will not over-write existing file \"touchup.man\"
  517. else
  518. echo shar: Extracting \"touchup.man\" \(17251 characters\)
  519. sed "s/^X//" >touchup.man <<'END_OF_touchup.man'
  520. X.TH Touchup 1 "26 March 1988"
  521. X.SH NAME
  522. Xtouchup \- a bitmap graphics editor for Sun raster files
  523. X.SH SYNOPSIS
  524. X.B touchup
  525. X[ \fB\-x width ]
  526. X[ \fB\-y height ]
  527. X[ \fB\-n ]
  528. X[ \fB\-p ]
  529. X.SH DESCRIPTION
  530. X.IX "touchup command"  ""  "\fLtouchup\fP \(em bitmap editor"
  531. X.IX edit  bitmaps
  532. X.IX "screen bitmaps"  edit
  533. X.LP
  534. X.I Touchup
  535. Xis an editor for bitmap raster files in \fISun raster file\fP\^(5)\fR 
  536. Xformat.
  537. X.SH OPTIONS
  538. X.IP \fB\-x
  539. X\fItouchup\fP will start up with the width of the drawing area given
  540. Xby the argument after -x.
  541. XOtherwise, the default drawing area has a width of 1152 pixels
  542. X.IP \fB\-y
  543. X\fItouchup\fP will start up with the height of the drawing area given
  544. Xby the argument after -y.
  545. XOtherwise, the default drawing area has a height of 900 pixels
  546. X.IP \fB\-p
  547. X\fItouchup\fP will start up with a drawing area of 900x1152 if this option
  548. Xis used.
  549. XThese dimensions are more suitable for printing out pages of text on the
  550. Xlaser printer, since drawing area is in proportion to normal paper size.
  551. X.IP \fB\-n
  552. XThis option disables the 'undo' command so that \fItouchup\fP
  553. Xwill require less memory.  The use of this
  554. Xoption will make the color version much more
  555. Xusable, by freeing up a large amount of the memory.
  556. X
  557. X.SH COMMANDS
  558. X.LP
  559. XTo edit a bitmap, type `\fBtouchup\fP'.  
  560. XA \fIraster file\fP
  561. Xfile name may be typed into the file name field once the program has started.
  562. XIf it exists, the \fIraster file\fP must be in \fISun Rasterfile\fP\^(5) format.
  563. XWhen the program starts, it displays a single large window containing
  564. Xfive subwindows.
  565. XFrom top to bottom, the five subwindows are:
  566. X.IP "1)" 5
  567. XThe topmost subwindow, an option subwindow, 
  568. Xallows you to set global parameters for the entire drawing area and
  569. Xspecify operations for loading and saving files.
  570. XThe options are:
  571. X.RS 
  572. X.IP "\fB(Load)\fP" 10
  573. XRead in the raster file specified in the file name field.
  574. X.IP "\fBLoad:Cut/Paste buffer\fP" 10
  575. XWhen the load cycle is set to this mode all raster files will be loaded into
  576. Xthe Cut/Paste buffer, then it can be previewed with the "view" feature.
  577. XNote: When a color image is loaded in the Cut/Paste buffer the color map for
  578. Xthat image is lost. The colormap is only loaded in when a color image is
  579. Xloaded on to the drawing area, with option 'Load:entire image'.
  580. X.IP "\fBLoad:entire image\fP" 10
  581. XWhen the load cycle is set to this mode all raster files will be loaded into
  582. Xthe drawing area and the size of the drawing area will be restricted to the
  583. Xsize of the raster file.  If the image has depth greater then one then the
  584. Xcolormap is loaded in so that the can be properly view.
  585. X.IP "\fB(Save)\fP"
  586. XWrite the current raster file onto disk with the name in the file name field.
  587. X.IP "\fBSave:Cut/Paste buffer\fP" 10
  588. XWhen the save cycle is set to this mode only the current Cut/Paste buffer
  589. Xwill be saved to the file in the filename field.
  590. X.IP "\fBSave:entire image\fP" 10
  591. XWhen the save cycle is set to this mode the current image in the drawing
  592. Xarea will be saved to a file in the filename field.
  593. X.IP "\fBSave:standard format\fP" 10
  594. XWhen the save cycle is set to this mode the current image
  595. Xwill be saved out in the standard Sun raster file format.
  596. X.IP "\fBSave:compress\fP" 10
  597. XWhen the save cycle is set to this mode the current image 
  598. Xwill be saved out in the Sun raster file
  599. XBYTE_ENCODED format.  This will often compress the file to one half
  600. Xthe normal size. One of the problems with saving a file in compressed
  601. Xformat is that the 'screenload' command will then not be able to read the
  602. Xfile.
  603. X.IP "\fB(Quit)\fP"
  604. XQuit the program.
  605. X.IP "\fBFile name:\fP"
  606. XThe file name of the current bitmap. When you are typing in the file name
  607. Xthe ESC key can be used to do standard csh filename completion.
  608. X.IP "\fBGrid:none\fP"
  609. XWhen Grid is set to some value other that "none" every bitmap operation
  610. Xwill be forced to the closest grid point.  The number after Grid is the number of
  611. Xpixels between each grid point.  The actual grid is not visible.
  612. X.IP "\fB(undo)\fP"
  613. XWhen this button pressed the last operation effecting the drawing area will be removed.
  614. X.IP "\fB(view)\fP"
  615. XWhen this button is pressed a window will be displayed containing
  616. Xone of two possible images, depending on the "view" cycle.
  617. X.IP "\fBview:man page\fP"
  618. XThis will set the view to the manual page entry for Touchup, so that when
  619. Xthe "view" button is pressed, a window containing the manual page
  620. Xwill be displayed.
  621. X.IP "\fBview:Cut/Paste\fP"
  622. XThis will set the view to the current Cut/Paste buffer, so that when
  623. Xthe "view" button is pressed, a window with current Cut/Paste buffer
  624. Xwill be displayed.
  625. X.IP "\fBview:Touchup info\fP"
  626. XThis will set the view to the copyright notice for touchup, so that when
  627. Xthe "view" button is pressed, a window with the copyright notice
  628. Xwill appear.
  629. X.IP "\fBBorders:Yes\fP"
  630. XThis cycle determines is borders are drawn on filled reactangles
  631. Xand filled polygons.
  632. X.IP "\fBDraw color:Black\fP"
  633. XThis cycle determines the color for DRAWing points, the border of
  634. Xfilled reactangles, the border of filled polygons, the FILL color, and lines.
  635. X.IP "\fBtext string:\fP"
  636. XThis is the string that is copied to the bitmap when the TEXT command is used.
  637. X.IP "\fBfonts:ABC\fP"
  638. XThis cycle determines the font for the text when the TEXT command is used.
  639. X.IP "\fBMessages\fP"
  640. XThe bottom line of this window is a message subwindow, which displays
  641. Xmessages, prompts, and warnings.
  642. X.RE
  643. X.RE
  644. X.IP "2)" 5
  645. XThe second subwindow, the subwindow on the lefthand edge of the main window,
  646. Xis the pattern subwindow.  This subwindow contains all of the paint
  647. Xand fill patterns that can be used to draw pictures.
  648. XThe current pattern is selected by placing the mouse cursor on top of
  649. Xthe pattern that you want and pressing the LEFT mouse button.
  650. X.IP "\fB(Define pattern)\fP"
  651. XBefore this button is pressed, select a point on the drawing area that
  652. Xyou wish to have as a new paint pattern, then press "Define pattern" the
  653. Xarea centered at the selected point will then become the last paint pattern
  654. Xin the pattern window.
  655. X.IP "3)" 5
  656. XThe third subwindow is the command subwindow. This window is the one that
  657. Xis on the right hand side of the main window. To select a command place the
  658. Xthe mouse cursor on top of the command that you want and press the LEFT
  659. Xmouse button.
  660. X.IP "\fBTEXT\fP" 10
  661. XFirst move to the Text string field in the topmost window and type in the
  662. Xtext that you wish to place on the bitmap.  Then use the SELECT POINT mode
  663. Xto select a point within the drawing area.  Once both of these two things are
  664. Xdone press the TEXT command icon with "ABC" on it, and the current
  665. Xtext string will be placed on to the bitmap in the currently selected font.
  666. X.IP "\fBMAGNIFY\fP" 10
  667. XFirst use the SELECT POINT mode to select a point within the drawing area that
  668. Xyou wish to look at in detail.  Then press the command icon for MAGNIFY
  669. Xand a new subwindow with a magnified view of the selected area will be displayed.
  670. XIn the top line of the MAGNIFY subwindow you can set the magnification to any
  671. Xvalue between one and twenty.  When the mouse cursor is within the magnified
  672. Xdrawing area, there are three possible commands.  The LEFT mouse button will
  673. Xchange the current bit to the opposite color and then continue to draw in
  674. Xthat color.  When the MIDDLE mouse button is held down and moved, it will change
  675. Xthe area of the bitmap that is magnified.  When you are editing color images
  676. Xthe RIGHT mouse button will change the current drawing color to the color of
  677. Xthe pixel the mouse cursor is on top of.
  678. X.IP "\fBSELECT REGION\fP" 10
  679. XFirst click the picture of the box made of dotted lines.
  680. XThen move to the drawing area and press the LEFT button when
  681. Xthe cursor is at the desired position and continue to hold the
  682. XLEFT button down while you drag the box to the opposite corner of the
  683. Xregion you wish to select.
  684. XIf you double click SELECT REGION then the entire drawing area will be
  685. Xselected.
  686. XIf you need to select an area bigger than the drawing window,
  687. Xfirst select one of the corners of the region with the LEFT mouse
  688. Xbutton.  Then scroll the window so that the other corner of the
  689. Xregion you want is now visible.  Place the cursor on top of the
  690. Xother corner of the region you want and press the the MIDDLE
  691. Xmouse button.
  692. X.IP "\fBSELECT POINT\fP" 10
  693. XFirst click the picture of the cross hairs.
  694. XThen press the LEFT mouse button down and a cross hair
  695. Xwill appear; move the mouse while holding the LEFT mouse button down and the
  696. Xcross hair will follow it. Releasing the
  697. Xthe button will leave the cross hair.
  698. X.IP "\fBLASSO\fP"
  699. XFirst select the picture of the LASSO, (right above the paint brush), then
  700. Xmove the mouse to the drawing area.  To LASSO a object hold down the LEFT mouse
  701. Xbutton and encircle the object that you wish to capture while the LEFT
  702. Xbutton is pressed.  When you let go of the LEFT mouse button the selected
  703. Xobject will first be highlighted and then it will be copied into the Cut/Paste
  704. Xbuffer. Then you will be placed into MOVE mode, this function is documented
  705. Xin the Cut/Paste buffer operations section.
  706. X.IP "\fBFLOOD FILL\fP"
  707. XFirst select a point on the drawing area that is inside a closed polygon region.
  708. XWhen the FLOOD FILL icon is pressed, it will start at the selected point and
  709. Xfill outward until it hits a border.
  710. XNote: FLOOD FILL will fill with the current DRAW COLOR value (on a mono sun).
  711. XWhen FLOOD FILL is used on a color sun it will fill with the currently selected
  712. Xcolor and it will fill until it gets to a border made of the current color.
  713. X.IP "\fBPAINT\fP"
  714. XOnce the PAINT command is selected, whenever the LEFT mouse button is pressed,
  715. Xa region of the drawing area will be painted with the current pattern and
  716. Xthe size of this region will be determined by the current brush size.
  717. XWhenever the paint command is selected a brush menu will appear in the window
  718. Xbelow the command subwindow. The current brush size can be set by placing the
  719. Xcursor on top of a brush size within the brush menu and pressing the LEFT
  720. Xmouse button.
  721. X.IP "\fBDRAW POINTS\fP"
  722. XOnce this command is selected, whenever the LEFT mouse button is pressed within the
  723. Xdrawing area a single pixel of the current DRAW COLOR will be placed at
  724. Xthe location of the mouse cursor.
  725. X.IP "\fBLINE\fP"
  726. XLeft button down marks the end point of a
  727. Xline; moving with the button down
  728. Xrubber bands a line; releasing button
  729. Xdraws the line.
  730. X.IP "\fBERASE\fP"
  731. XPressing the LEFT button down will ERASE a small square region and
  732. Xmoving with the button down will 
  733. Xcontinue ERASing until the LEFT button
  734. Xis released. If a region is already selected when the ERASE icon is pressed
  735. Xthe specified region will be erased. If you double click the ERASE icon the
  736. Xentire drawing area will be erased.
  737. X.IP "\fBRECTANGLE\fP"
  738. XLike \fBLINE\fP except draws a rectangle.
  739. X.IP "\fBRECTANGLE Filled\fP"
  740. XLike \fBLINE\fP except draws a rectangle that is filled with the currently
  741. Xselected pattern, from the pattern menu.
  742. X.IP "\fBCIRCLE\fP"
  743. XMove the mouse cursor to the center of the circle that you with to draw
  744. Xand hold down the LEFT mouse button, then while continuing to hold the LEFT
  745. Xmouse button down extend the cursor to the radius of the circle that you want
  746. Xand then release the LEFT mouse button.
  747. X.IP "\fBOVAL\fP"
  748. XLike \fBCIRCLE\fP except draws a oval.
  749. X
  750. X.IP "\fBPOLYGON\fP"
  751. XOnce this command is selected, move to the drawing area and press the LEFT mouse
  752. Xbutton when the cursor is at the first vertex of the polygon that
  753. Xyou wish to draw.  Then continue to use the LEFT mouse button to select vertice
  754. Xof the polygon.  When you have selected all of the vertice that you want, press
  755. Xthe RIGHT button to close the polygon.
  756. X.IP "\POLYGON FILLED\fP"
  757. XLike \fBPOLYGON\fP except it fills the polygon with the currently selected
  758. Xpattern from the pattern subwindow.
  759. X.IP "4)" 5
  760. XThe subwindow below the command subwindow, is the extra command subwindow.  There are two possible
  761. Xwindows that will appear within this subwindow, the first is the brush size menu
  762. Xwhich is described in the PAINT command documentation.  The other menu that
  763. Xwill appear in this subwindow is the Cut/Paste buffer command menu.
  764. XThis subwindow will only be visible when the SELECT REGION command is pressed.
  765. XThis menu has the following commands.
  766. X.IP "\fBMIRROR\fP"
  767. XThis command will create a mirror image of the currently
  768. Xselected region.
  769. X.IP "\fBFLIP\fP"
  770. XThis command will FLIP the currently selected region upside down.
  771. X.IP "\fBINVERSE\fP"
  772. XThis command will INVERSE the currently selected region.
  773. X.IP "\fBROTATE\fP"
  774. XThis command will ROTATE the currently selected region ninity degree
  775. Xclockwise.
  776. X.IP "\fBCOPY\fP"
  777. XThis command will place a copy of the currently selected region into the
  778. XCut/Paste buffer.
  779. X.IP "\fBPASTE\fP"
  780. XFirst use the SELECT POINT command to select the upper right hand corner
  781. Xof where you wish to place the Cut/Paste buffer.  Then press the PASTE
  782. Xcommand icon and the contents of the current Cut/Paste buffer will be copied
  783. Xto the drawing area.
  784. X.IP "\fBMOVE\fP"
  785. XFirst use either COPY, CUT, or Load:Cut/Paste buffer to put an image into
  786. Xthe current Cut/Paste buffer.  Once the MOVE command has been selected,
  787. Xmove the mouse to the drawing area and hold down the RIGHT mouse button.
  788. XAs long as the RIGHT mouse button is held down, you can position the image
  789. Xwhere you like.  Then let go of the RIGHT mouse button to place a copy of
  790. Xthe image on the drawing area.
  791. X.IP "\fBCUT\fP"
  792. XThis command will place a copy of the currently selected region into the
  793. XCut/Paste buffer and then it will fill the selected region with the
  794. Xcurrently selected pattern.
  795. X.IP "5)" 5
  796. XThe last subwindow is the drawing area, which is in the center of the main
  797. Xwindow.
  798. X.RE
  799. X.SH "PRINTING FILES:"
  800. X.LP
  801. XSave a image out to a file and use the following Unix command to
  802. Xdump the image to a full page picture on an Apple Laser Writer or any
  803. Xother PostScript laser printer, where
  804. Xfile_name is the file name of an image created in Touchup.
  805. X
  806. X.LP
  807. XWhen the picture is wider than it is high use the following command:
  808. X
  809. X     % pssun -s 8 10.5 -r file_name | lpr -Plw
  810. X
  811. X
  812. X.LP
  813. XWhen the picture is higher than it is wide use this command:
  814. X
  815. X     % pssun -s 8 10.5 file_name | lpr -Plw
  816. X
  817. X.LP
  818. XWhen the picture is part of a document use this command:
  819. X
  820. X          % pssun -S 6 -l 1.5 3 file_name | lpr -Plw
  821. X.LP
  822. XImages can also to sent to a IMPRESS laser printers with a command
  823. Xsimilar to the following, where "/u5/sr/local/bin/imPf2" is the location
  824. Xof the INPRINT program and "newcanon" is the name of the IMPRESS laser printer.
  825. X
  826. X   % cat file_name | /u5/sr/local/bin/imPf2 | lpr -Pnewcanon
  827. X
  828. X
  829. X.SH "TYPICAL QUESTIONS:"
  830. X.IP "\fBHow do I select an area bigger than the drawing window ???\fP" 5
  831. X
  832. X.LP
  833. XFirst go to SELECT REGION mode then select one of the corners of the region with the LEFT mouse
  834. Xbutton.  Then scroll the drawing area subwindow so that the other corner of the
  835. Xregion you want is now visible.  Place the cursor on top of the
  836. Xother corner of the region you want and press the the MIDDLE
  837. Xmouse button.
  838. X
  839. X
  840. X.IP "\fBHow do I merge two different pictures in to one picture ???\fP" 5
  841. X.LP
  842. XWhen booting up Touchup the default drawing area is 1152 x 900,
  843. Xwhich is the full screen size of the Sun graphics screen.  When
  844. Xyou load a new picture
  845. Xthe drawing area is restricted to the size of the picture that you loaded.
  846. XWhat you need to do is start up Touchup and load the first picture
  847. Xinto the Cut/Paste buffer by changing the cycle next to the load
  848. Xbutton from "Load: Entire image" to "Load: Cut/Paste buffer" and then
  849. Xpress the load button.  The file will then be in the cut/paste
  850. Xbuffer and you can PASTE it or MOVE it to where ever you like.
  851. XThen load the second picture into the Cut/Paste buffer and PASTE that
  852. Xpicture where ever you like.
  853. X
  854. X
  855. X.IP "\fBHow do I make part of a picture into an icon ???\fP" 5
  856. X
  857. X.LP
  858. XUse a program such as the "The Portable Bitmap Toolkit" by Jef
  859. XPoskanzer(jef@lbl-rtsg.arpa)
  860. XThis can be ftped from zap.mit.edu, I also have a copy
  861. Xrolled out on tape if you do not have access to zap.mit.edu.
  862. X
  863. X
  864. X.IP "\fBHow do I convert other image format to Sun rasterfile format ???\fP" 5
  865. X.IP "\fBHow do I convert Sun rasterfile format to other image formats ???\fP" 5
  866. X
  867. X.LP
  868. XUse a program such as the "The Portable Bitmap Toolkit" by Jef
  869. XPoskanzer(jef@lbl-rtsg.arpa)
  870. XThis can be ftped from zap.mit.edu, I also have a copy
  871. Xrolled out on tape if you do not have access to zap.mit.edu.
  872. X
  873. X
  874. X.IP "\fBWhat does SAVE COMPRESSED mean ???\fP" 5
  875. X
  876. X.LP
  877. XThis means that the image will be saved out in the Sun rasterfile
  878. XBYTE_ENCODED format.  This will often compress the file to one half
  879. Xof the normal size. One of the problems with saving a file in compressed
  880. Xformat is that 'screenload' command will then not be able to read the
  881. Xfile.
  882. X
  883. X
  884. X.SH FILES
  885. X\fI/usr/include/rasterfile.h\fP \- Sun raster file format
  886. X.SH SEE ALSO
  887. X.IR pssun (1),
  888. X.IR rastps (1),
  889. X.IR suntools (1),
  890. X.IR screendump (1),
  891. X.IR sceeenload (1)
  892. X.IR rasterfile (5)
  893. X.SH BUGS
  894. X.LP
  895. XTouchup has not been totally debugged for use with color images.
  896. X.LP
  897. XIf you try to FLOOD FILL an area that has a VERY complex pattern and covers
  898. Xa large area it is possible to over flow the stack and cause a core dump.
  899. X.SH Author
  900. X Ray Kreisel
  901. X Computer Science Department
  902. X SUNY at Stony Brook
  903. X Stony Brook NY 11794
  904. X.LP
  905. X UUCP: {allegra, philabs, pyramid, research}!sbcs!rayk   
  906. X ARPA-Internet: rayk@sbcs.sunysb.edu
  907. X CSnet: rayk@suny-sb
  908. X.LP
  909. X"If I get home before daylight, I just might get some sleep tonight...."
  910. END_OF_touchup.man
  911. if test 17251 -ne `wc -c <touchup.man`; then
  912.     echo shar: \"touchup.man\" unpacked with wrong size!
  913. fi
  914. # end of overwriting check
  915. fi
  916. if test -f fixman.sed -a "${1}" != "-c" ; then 
  917.   echo shar: Will not over-write existing file \"fixman.sed\"
  918. else
  919. echo shar: Extracting \"fixman.sed\" \(8 characters\)
  920. sed "s/^X//" >fixman.sed <<'END_OF_fixman.sed'
  921. Xs/_//g
  922. END_OF_fixman.sed
  923. echo shar: 1 control character \(a backspace\) may be missing from \"fixman.sed\"
  924. if test 8 -ne `wc -c <fixman.sed`; then
  925.     echo shar: \"fixman.sed\" unpacked with wrong size!
  926. fi
  927. # end of overwriting check
  928. fi
  929. if test -f temp_image -a "${1}" != "-c" ; then 
  930.   echo shar: Will not over-write existing file \"temp_image\"
  931. else
  932. echo shar: Extracting \"temp_image\" \(6467 characters\)
  933. sed "s/^X//" >temp_image <<'END_OF_temp_image'
  934. Xbegin 644 info.image
  935. XM6:9JE0   :(   #@     0  $B(    "          " _P" _P" )@ #_H S
  936. XM !__P( R #?_\( R '___( Q  &  O^  ( P  /___Z  ( O # '__?_\( N
  937. XM  ?_QX "__B +@ ?;_>  O_V@"X .O[?@ /_@ " +0!W@ 7_8( M &^ !?_X
  938. XM@"T W_V !/_H@ 8 #( ) (   8  (  !  0  $!P.!R #  !@ ;_^( " /Z 
  939. XM @ $@ , .H $ (   (  (  "  (  ,"(1"* #  #OX %__B  @"2@ ( !( #
  940. XM $: !@"  "  !  !  %!!$0B@ P !X &__R  @"2'#&'1<8S< ""'#<<[<. 
  941. XM .RX_  $!T$  $$$1"* #  .@ ;__( " ! B$(C&(A&( (  (AB(1B"!&,0@
  942. XM  @(P(   $$$?#Z #  ;^X &_X " !!!$)!$(A$$ (  01!(1 """(0@  @0
  943. XM0(   $",1"* #  ?]X &_X     001"0!"(1! "  $$01(0 @@B$(  ($ " 
  944. XM  ! =()!@ P =^^ !O_    001"0!"(1! "  $$01(0 @@B$(  ($ "   ! 
  945. XM!()!@ P ;]^ !O_    001"0!"(1! "!01!#! """(0@  @0 (   $ (@D& 
  946. XM# #?OX &_^   ! B$8A$(C&( $(B&(,$ ($8A"( ! A!  ! &,9C@ L  ?]_
  947. XM@ ;_T   ?!P.QXYQV7  /!P7 @\#X.G.'  $!X$  ?#@?#Z "P !@ C_\( '
  948. XM  &  P 0 H "  B  @ "  * $0 'WX '__" !P !@ , $ 2  @ (@ (  0 $
  949. XM@!$ #[^ !__P@ <  8 # ! $@ ( $( 7 !_^@ ?_\( '  .  ( " #@>   !
  950. XMX( 7 'Z "/_X@"H ?8 (__B *@#W__> !O_P@"D  >_^@ ?_^( I  /__8 #
  951. XM_^J  O_P@"D !X $__Z_W___^( #  0$ H .  0   .  ( .  >  __?^_> 
  952. XM O_P  ''  0$ H # /@  !^      <8   2  @"  ( .  __^_O]>X "__W_
  953. XM^   @@  ! *  P!$   (0( " (2 !0"  ( . !__[__[5____MO_\   DFX<
  954. XM'X_!PW  1'.   A#QS@ B-P<' _#@ & @ X '_??__;O@ 3__   DC$$! ("
  955. XM(8@ 1"$ "$0B$ "08B($$$1 @ " #@ __[___1V]_]O___P  *H@! 0"!!$(
  956. XM '@A  ^  "(0 +! 0000"""  ( . #__?_?R]W^ !/\  *H@! 0"!_$( $02
  957. XM  D#X2  T$!_! X/X(  @ X ?___W^TI__]_O__^@   1" $! ($ 0@ 0A( 
  958. XM"(0A( "(0$ $ 8@ @ " #@!_^_^_^E=_ZO:  O_  $0@! 0"! $( $(,  B(
  959. XM(,  B$! ! !( (  @ X ?_^_?]5:W___^___P !$( 0$0B(1" !"#  (2&# 
  960. XM (1 (0001""  ( . '___?^T)7;_[_?___  1'@? X'!XYP _ @ '&>P@  !
  961. XMSO >'Q^#P^" #@!_^___=4ZM__VO___P@ H "( # (  @!< ?____N@16^N[
  962. XM?___[( * !"  @ !@!@ ?_^[V])&M[]W[____( * !"  @ !@!@ ?__WOV0(
  963. XM57;O7____( * 'B  @ '@ " %P!__O_^R *6W;[[?__^@"@ /__?>U!1)5=M
  964. XMU____8 H '___^Z@ $JZ^[^  O^ * !___K=0@$0I^^  O_^@ " )P!__]?Z
  965. XMA  "&5ZW@ +_@"@ ?___OJ@ $$:U[____H  @"< ?__^Z8 " !"O7X "_X H
  966. XM '__U_Z@  ""$8 "__V * #___[5"   !$9?___^@"@ @ +_^B  "!"0M___
  967. XM_( H /___;1 @   1 5O___X@"@ ___[Z00"0(BHG____( H ( "_[5(! $!
  968. XM E7___R * "  O]J$  "!"B7?__X@"@ ___[]$ (  B"2O___( H ( "_TD 
  969. XM$  !*)7___B )P !@ +_]$  ! 0"J____( G  /___U)%  ((502?__X@"< 
  970. XM!___^[2@@  0! %EO__X@"< !____M*  P!*2G___( G  ?___6MU00 ")"2
  971. XM[__Z@"< #X "_W4@(  1!6V___X /D @@ <  8 # (  X(    &  @! @ T 
  972. XM#___]5J70   *1+O__X "$" #0"  "    & $0 ?___]]JH(  !"?U___P (
  973. XM6.#@!8L.&EAAL <' "Q$L".#@  -'&QAPL" #  ?___K6U3B  $=UO___H  
  974. XM"&0A$ 9,D29DD5 !"(  ,D3(((1 $R)4D$,@@ P /___W>I5%  "8JWW_O^ 
  975. XM  A$(, $2!$B0'%0 08 (D2(((0 $2)4<$(@@ P @ +_NU2"R   G5OO__Z 
  976. XM  A$(" $2!$B0)%0 0$ (D2(((0 $2)4D$(@@ P @ +_]= $*0 %(K>  O\ 
  977. XM"$0A$ 9($29 D5 !"(  ,DS(((1 $R)4D$(F@ L  8 "_^\D (( "-U*[WZ^
  978. XM@  (1"#@!8@.&D!I4 $' "PTL""#@  -'%1H0B* "P !__?_V<B  !0 (1 3
  979. XMWO_]@ "  P $   "@ 4 (( )  * "P !@ +_]R 5  !"("2]__^  ( #  0 
  980. XM "* !0 @@ D !( +  &  O_=24E  (1! W__?X $  0  !R !0 @@!8  8 "
  981. XM__,2MI) "  $__[NP( E  &  O_>05U @ "@E5%?O__ @"4  8 "_[*6JY0 
  982. XM"2*$OWV_H( E  '___WL!5\A05)>L7_[_^" )0 #@ +_M5590@HDMTK_]_] 
  983. XM@"4  __[_^H$MQB@T2ZTK___\( E  >  O^T40I"229755___^" )0 '@ +_
  984. XM:H10$4!)/KI_]__0@"4 !X "_^@1 2*2LD54K___^( E  >  O_6H@ ")* :
  985. XMJ5_]_^@   2  P 0   (0   !""  @ @@ ,  8 ,  ?___ZH1 (DP% @!3__
  986. XM__@   2  P 0   (  (  "  0  @!( " $& #  '@ +_VH  )$D)I0"J;___
  987. XM\ PL- &QA$ 6' !IP<>+'"Q$\.&@#PX ./%AQ8> "0 '@ +_M0A  J)4  E?
  988. XM___H$C), 5)$0!DB )A"(@R$,D1!$F $$0!$09(F2(  @ @ !X "_V@@A)4(
  989. XMJ"$BO___^ XB1 %1Q$ 1/ "(08((!")$0>(@!!$ 1$$3Q : "0 #___^TH((
  990. XM(E*B@ !*7___\!(B1 %21$ 1( "(0$((!")$00(@!!$ 1$$2! & "0 #@ +_
  991. XMU!00B4"L! %?___H$B), 5)$P!DB )A"(D@$,DQ)$F $D0!$21(D"(  @ @ 
  992. XM ___^ZJ@0!*54)%*O___^ TB- %1HT 6' !H0<&(!"PT,.&@ PX .#$1Q > 
  993. XM"@"  O_9 ($E(6T  5___^B !0! @!\ ___W5$0$!(20)!2W___P@ 0 !$" 
  994. XM'P"  O_K$ @5(35!0J___^B !  #@ " 'P"  O^80$ H % ("5___]" )@#_
  995. XM__MV@   (H  +2)2?___\( F ( "_^D  $@ J  !7___T( F ( "_U0  !( 
  996. XM%@1*O___X( F '___NJ   "@ %0 @6___X  @"8 ?__[V@  !(  B@ %7___
  997. XM@ " )@!___^T  "@ 10 "+___X  @"8 /___Z0  !(  (H   5___Z" )@ ]
  998. XM__]:$  I D@ DK___\" )@ ;__WP  !! ((  7___X G  ___ZH@1(I*J  "
  999. XM7__^P( F  ;___2    0$44 !/?__X G  /__LD  *1"*  )+__]@ , <( %
  1000. XM  $ @ " !0"   B ! "  ( , /__]  %*(BJ@   ___Z@ , $( % $& "  (
  1001. XM"( " (  @ T W_^I $C! 14  E?_[  ,'  0XL- #!P \6.#@  .'%B)8X-+
  1002. XM'@!8<>.#AX + #_^Z@*3.@)J2!2__U@ $B( $1,DP!(B $&0A$ 1(F2)D(3,
  1003. XMB !DB(  A$B  ( * #__M!0DP 05D0%O_-  #A@ $1(D0 X8 $$0@P 0(D2)
  1004. XM (1(B !$B(  A ^ "P O_NB!JRJ@JD %7_H  !($ !$2)$ 2! !!$( !@! B
  1005. XM1(D A$B( $2(@ "$"( + #_]TA9*T44JM E_^   $B( $1(DP!(B $D0A$ 1
  1006. XM(F29 (3(B0!$B)"$2(  @ H /_^TB94""E7)0J_P   -'  0XB- #1P ,1"#
  1007. XM@  .'%AI (-(A@!$<&"#AX + #__Z1942!"*-@K?^( ' $" " ! "   0( 2
  1008. XM #_^J@BID $RR84_\( &  1 @ @ 0(@ !$" $@ ?_?130@("158I=_" !@ #
  1009. XM@ " " ! <  #@ " $@ ?_\D4/510E*K"[^" *0 ?^_I2P(  A2E5BU_P@"D 
  1010. XM&__4I!T)$%*B1?_@@"D '__J2"@  H6EJJ_ @"D /_^U$0J    *@E=_P( I
  1011. XM #__[$ 2   %4*KOP( I #_]^Q E@   "H)+7\" *0 __]9 @  0 !4@EO_ 
  1012. XM@"D >__\@  %1 %*A!7_P( I #?_^Q (D!"U("NOP( I &_^U* !(D((0!=_
  1013. XMP( I '___P 2  "C &W_P( I '__^M    0:0!?_@ " *0!___:   0@ *  
  1014. XM[;_ @"D ?__M4 B   $%01O_P( I '___X  $  ($@!W_Z" !0!    $@!\ 
  1015. XM??^V: $  "1"K__P@ H (  !@!L .___D" A(4$$W__P   6'&QAPL.  !PL
  1016. XM>&#CP( : "___64 ! (*$3_?H   &2)4D$,D0 0R()$1@!L .__[J *   @0
  1017. XM1?;_^   $#Q4<$(C  0B('$!@!L %___5"0044*37__8   0(%200B"   0B
  1018. XM()$!@!L 'O__ZH   H(4#7__\   $")4D$(D0 0B))$1(H : !7O^U@(  " 
  1019. XM )/__]   ! <5&A"(X  !"(8:.#"@!H #]__]R )*B$FM__\@"D #O_?JD$2
  1020. XM0(I-___\@"D #?__?1( "E";___\@"D #__]]L02H(,WO__\@"D #___[2@D
  1021. XM"2IN___^@"D !__W_]$ HD3=___^@"D  ___VJ11!)-[___^@"D  W__OUJ$
  1022. XM*"6O___^@"D  O__>O4H@<U____^@"D  __]_]21*A/6___^@"D  ?___NMD
  1023. XM46U____^@"D  7__^]R)I5/?[__^@"H __[OM;953KN___Z *@#__][[255;
  1024. XM?W___H J /___=:VJM;_[__^@"D  ?_^O_W-7;WVO__\@"D  __]_=<ZMVOO
  1025. XMW__\@"D !___^_WM[5_>?__X@"D !__]M]M;6_N_G__\@"D #__[?__V]J_\
  1026. XMO__X@"D #__^[[;=W_][;__X@"D #__]/?_WOKWVO__P@"D #__Z[[;?^_O]
  1027. XM5O_P@"D #__]6W_V__?BK__P@"D #__[5_;?WM_=7__@@"D '__\K6_V^__B
  1028. XMM__@@"D '__[2][?_]]-7?_0@"D &__]5#W_]WJ2J__P@"D '__ZB>O]WM>I
  1029. XM77WP@"D /__]4A?;_?XE-O]\@"D -__ZI5:_MZE)53_L@"D ?__]2"7W[5H2
  1030. XMKD7<@"D ;__ZJHJM6K"E63__@"D ?__U0%$NI44(JT?]@"D _]_ZK0)52J@C
  1031. XM5A?W@"D W__K4*0)(!$(K4+=@ " * #__]2%"*)%0B,J%;=@@"<  ?__NW(@
  1032. XM!(@0"E5#>/B )P !W__51$*H *1 JH  ]]2 )P !__^JE(0 (@"+5@M<?( G
  1033. XM  '__U5I"$%$(  I$+^[@"<  ?O_JI(@A !%%=:A7E= @"8  ^_^561!" " 
  1034. XM "$) +^OX( F  /?_:J(A !%  16 1_?N( F  ?__A52 !"   DA*0!OU6R 
  1035. XM)@ 'W_JJI)$B!! *2@"?JOJ )@ /O_Y2200  " @J0 O9=> )@ /__J-DB B
  1036. XM"$""$@!.\KV )@ ?O_\R)$"$0($(Q  7Z7N )@ _?_Q*R00  0 2&0 OVO> 
  1037. XM)@!^_OL5$D@0! ( H@ &M5^ )@ =OY122(  @0@$*A0 &^U]@"8 'VMM%5(0
  1038. XG A  0*  !5NK@"8 #=[:*H2A$  0"0@ $O=_@/\ @/\ @/\ @$P 
  1039. Xend
  1040. END_OF_temp_image
  1041. if test 6467 -ne `wc -c <temp_image`; then
  1042.     echo shar: \"temp_image\" unpacked with wrong size!
  1043. fi
  1044. # end of overwriting check
  1045. fi
  1046. if test -f touchup.icon -a "${1}" != "-c" ; then 
  1047.   echo shar: Will not over-write existing file \"touchup.icon\"
  1048. else
  1049. echo shar: Extracting \"touchup.icon\" \(1933 characters\)
  1050. sed "s/^X//" >touchup.icon <<'END_OF_touchup.icon'
  1051. X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1052. X */
  1053. X    0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x8000,0x0000,0x0000,0x0001,
  1054. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1055. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1056. X    0x8000,0x0000,0x0000,0x0011,0x8000,0x0000,0x0030,0x1011,
  1057. X    0x800E,0x0010,0x1078,0x1011,0x8078,0x1C10,0x104C,0x1011,
  1058. X    0x81C0,0x2410,0x1040,0x1011,0x8F00,0x2308,0x0840,0x1011,
  1059. X    0xF400,0x4108,0x0840,0x0811,0xC400,0x4088,0x0C40,0x09F9,
  1060. X    0x8200,0x4088,0x0C40,0x0709,0x8300,0x804C,0x0C40,0x0C09,
  1061. X    0x8100,0xC044,0x0440,0x080D,0x8180,0xC042,0x0460,0x080D,
  1062. X    0x8080,0x4042,0x0831,0x8419,0x80C0,0x40C1,0x900F,0x0419,
  1063. X    0x8040,0x4180,0x6000,0x0401,0x8020,0x3F00,0x0000,0x0001,
  1064. X    0x8050,0x0000,0x0000,0x0001,0x8030,0x0000,0x0000,0x0001,
  1065. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1066. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1067. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1068. X    0x8000,0x0000,0x4FFC,0x0001,0x8000,0x0200,0x7006,0x0001,
  1069. X    0x8008,0x0200,0x6002,0x0001,0x8008,0x0200,0x2002,0x0001,
  1070. X    0x8008,0x0100,0x2002,0x0001,0x8008,0x0100,0x2002,0x0001,
  1071. X    0x8008,0x0080,0x2006,0x0001,0x8008,0x0080,0x23F8,0x0001,
  1072. X    0x8008,0x0080,0x2600,0x0001,0x8008,0x0080,0x2C00,0x0001,
  1073. X    0x8008,0x0080,0x3000,0x0001,0x8008,0x0080,0x1000,0x0001,
  1074. X    0x800C,0x0080,0x1000,0x0001,0x8004,0x0080,0x1000,0x0001,
  1075. X    0x8004,0x0080,0x1000,0x0001,0x8002,0x0700,0x1800,0x0001,
  1076. X    0x8003,0x7A00,0x0000,0x0001,0x8001,0x8000,0x0000,0x0001,
  1077. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1078. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1079. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1080. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1081. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1082. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1083. X    0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
  1084. X    0x8000,0x0000,0x0000,0x0001,0xFFFF,0xFFFF,0xFFFF,0xFFFF
  1085. END_OF_touchup.icon
  1086. if test 1933 -ne `wc -c <touchup.icon`; then
  1087.     echo shar: \"touchup.icon\" unpacked with wrong size!
  1088. fi
  1089. # end of overwriting check
  1090. fi
  1091. if test -f fat_cursor -a "${1}" != "-c" ; then 
  1092.   echo shar: Will not over-write existing file \"fat_cursor\"
  1093. else
  1094. echo shar: Extracting \"fat_cursor\" \(193 characters\)
  1095. sed "s/^X//" >fat_cursor <<'END_OF_fat_cursor'
  1096. X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
  1097. X */
  1098. X    0xFF80,0xFF00,0xF800,0xFC00,0xFE00,0xDF00,0xCF80,0xC7C0,
  1099. X    0x83E0,0x01F0,0x00F8,0x007C,0x003E,0x001C,0x0008,0x0000
  1100. END_OF_fat_cursor
  1101. if test 193 -ne `wc -c <fat_cursor`; then
  1102.     echo shar: \"fat_cursor\" unpacked with wrong size!
  1103. fi
  1104. # end of overwriting check
  1105. fi
  1106. if test -f strip_icon32x32 -a "${1}" != "-c" ; then 
  1107.   echo shar: Will not over-write existing file \"strip_icon32x32\"
  1108. else
  1109. echo shar: Extracting \"strip_icon32x32\" \(435 characters\)
  1110. sed "s/^X//" >strip_icon32x32 <<'END_OF_strip_icon32x32'
  1111. X#!/bin/sh
  1112. X# This shell script will strip an 64x64 icon down to 32x32 to be used
  1113. X# as a filling pattern in Touchup
  1114. Xfor patterns in ` ls pattern[0-9].icon; ls pattern[0-9][0-9].icon; ls brush[0-9].icon `
  1115. Xdo
  1116. Xecho "Stripping $patterns..."
  1117. Xawk '
  1118. XBEGIN { FS = "," }
  1119. XNR == 1,NR == 2 { print }
  1120. XNR < 18 && NR > 2 { printf "%s,%s,%s,%s,\n", $1, $2, $5, $6 }
  1121. XNR == 18 { printf "%s,%s,%s,%s\n", $1, $2, $5, $6 }
  1122. X' $patterns > ${patterns}.pat
  1123. Xdone
  1124. END_OF_strip_icon32x32
  1125. if test 435 -ne `wc -c <strip_icon32x32`; then
  1126.     echo shar: \"strip_icon32x32\" unpacked with wrong size!
  1127. fi
  1128. chmod +x strip_icon32x32
  1129. # end of overwriting check
  1130. fi
  1131. if test -f strip_icon48x48 -a "${1}" != "-c" ; then 
  1132.   echo shar: Will not over-write existing file \"strip_icon48x48\"
  1133. else
  1134. echo shar: Extracting \"strip_icon48x48\" \(405 characters\)
  1135. sed "s/^X//" >strip_icon48x48 <<'END_OF_strip_icon48x48'
  1136. X#!/bin/sh
  1137. X# This shell script will script an 64x64 icon down to 48x48 to be used
  1138. X# as a command icons in Touchup
  1139. Xfor patterns in ` ls *.cicon `
  1140. Xdo
  1141. Xecho "Stripping $patterns..."
  1142. Xawk '
  1143. XBEGIN { FS = "," }
  1144. XNR == 1,NR == 2 { print }
  1145. XNR < 26 && NR > 2 { printf "%s,%s,%s,%s,%s,%s,\n", $1, $2, $3, $5, $6, $7 }
  1146. XNR == 26 { printf "%s,%s,%s,%s,%s,%s\n", $1, $2, $3, $5, $6, $7 }
  1147. X' $patterns > ${patterns}.pat
  1148. Xdone
  1149. END_OF_strip_icon48x48
  1150. if test 405 -ne `wc -c <strip_icon48x48`; then
  1151.     echo shar: \"strip_icon48x48\" unpacked with wrong size!
  1152. fi
  1153. chmod +x strip_icon48x48
  1154. # end of overwriting check
  1155. fi
  1156. echo shar: End of archive 1 \(of 6\).
  1157. cp /dev/null ark1isdone
  1158. MISSING=""
  1159. for I in 1 2 3 4 5 6 ; do
  1160.     if test ! -f ark${I}isdone ; then
  1161.     MISSING="${MISSING} ${I}"
  1162.     fi
  1163. done
  1164. if test "${MISSING}" = "" ; then
  1165.     echo You have unpacked all 6 archives.
  1166.     rm -f ark[1-9]isdone
  1167. else
  1168.     echo You still need to unpack the following archives:
  1169.     echo "        " ${MISSING}
  1170. fi
  1171. ##  End of shell archive.
  1172. exit 0
  1173.